package com.kuangstudy.io.filter;

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/**
 * ClassName: UnsafeBuyTicket
 * date: 2021/07/16 10:45:19
 *
 * @author zlk
 */
public class Demo2 {
    public static void main(String[] args) {
        show3(new File("e:\\BBB"));
    }

    /**
     * 获取所有的文件 判断是文件夹进行递归
     * 搜索txt文件
     */
    private static void show3(File path) {
//        File[] files = path.listFiles(new FileFilter() {
//            @Override
//            public boolean accept(File pathname) {
//                if (pathname.isDirectory()) {
//                    return true;
//                }
//                return pathname.getName().toLowerCase().endsWith("txt");
//            }
//        });//传递过滤器对象 使用匿名内部类
//        File[] files = path.listFiles(new FilenameFilter() {
//            @Override
//            public boolean accept(File dir, String name) {
//                return new File(dir,name).isDirectory() || name.toLowerCase().endsWith("txt");
//            }
//        });
        //使用Lambda表达式优化匿名内部类(接口中只有一个抽象方法)
        File[] files = path.listFiles(pathname -> {
            return pathname.isDirectory()||pathname.getName().toLowerCase().endsWith("txt");
        });
        for (File file : files) {
            if (file.isDirectory()){
                show3(file);
            }else {
                System.out.println(file);

            }
        }
    }
}
